SpringCloudAlibaba 入门笔记(二)Nacos 注册中心

概述

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

在这一篇中,我们使用 Nacos 作为服务注册中心,并向其中注册两个服务,实现服务间的调用。

启动Nacos

首先,我们需要下载并启动Nacos,参照 Nacos文档 下载即可。

下载完成后,我们还要进行一下配置,Nacos 默认以文件的方式去持久化数据,我们这里将其改为通过 MySQL 数据库来持久化数据。

解压后,在解压根目录下找到 nacos/conf/nacos-mysql.sql 文件,建好数据库去执行这个 sql 就可以了,然后在同目录下找到 application.properties 文件,在该文件中根据 MySQL的配置 添加内容:

1
2
3
4
5
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=

接下来,到 bin 目录下启动 Nacos 就可以了。

创建服务

然后,我们需要去创建两个服务并注册到 Nacos 中。

我们需要在顶级项目中引入SpringCloudAlibaba的依赖,后面我们会以该项目作为parent,去统一管理各子项目的依赖。

1
2
3
4
5
6
7
8
9
10
11
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

然后在我们的 sample-1 中分别创建 nacos-provider 和 nacos-consumer 两个子项目,作为服务提供者和服务消费者,在这两个子项目中需要引入如下依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>

接下来,在子项目的 application.yml 配置文件中进行一些配置,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server:
port: 8000
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
service: nacos-provider #当前服务的名称,默认为${spring.application.name}
weight: 1 #服务的权重,取值[1, 100],默认为1

management:
endpoints:
web:
exposure:
include: '*'

最后,在项目的启动类上添加 @EnableDiscoveryClient 注解。

经过上面的配置,我们就将服务注册到 Nacos 中了。

访问 Nacos 的控制台,我们就可以看到这两个服务了:

本篇只是官方示例的一个实验,通过这样的方式,我们就可以将服务注册到 Nacos 中,后续对服务的配置,以及服务间的调用都可以基于 Nacos 来实现。

源码地址:https://github.com/GreedyStar/spring-cloud-alibaba-demo

最后的最后,安利一下自己写的一个Java代码生成工具,能够方便的生成Spring、SpringMVC、Mybatis架构下的Java代码,希望能对大家有所帮助,地址:Java代码生成器:Generator